Optimizing energy use in a data center by workload scheduling and management

ABSTRACT

Techniques are described for scheduling received tasks in a data center in a manner that accounts for operating costs of the data center. Embodiments of the invention generally include comparing cost-saving methods of scheduling a task to the operating parameters of completing a task—e.g., a maximum amount of time allotted to complete a task. If the task can be scheduled to reduce operating costs (e.g., rescheduled to a time when power is cheaper) and still be performed within the operating parameters, then that cost-saving method is used to create a workload plan to implement the task. In another embodiment, several cost-saving methods are compared to determine the most profitable.

BACKGROUND

The present invention generally relates to energy management in a datacenter, and more particularly, to executing tasks in a manner to lowerthe operating costs of the data center.

DESCRIPTION OF THE RELATED ART

A substantial percentage of existing data centers will have insufficientpower and cooling capacity in the near future. Even if this increasingneed is met, power is the second-highest operating cost (after labor) inthe majority of all data centers. Compounding the problem is that datacenters use workload managers that fail to account for the operatingcosts of the data center when scheduling workloads. Typical workloadmanagers consider only performance criteria when assigning computingresources to carryout a task. However, in many situations, the datacenter may perform a task within a time constraint while simultaneouslyreducing operating costs.

A data center typically houses numerous printed circuit (PC) boardelectronic systems arranged in a number of racks. A standard rack may beconfigured to house a number of PC boards, e.g., about forty boards. ThePC boards typically include a number of components, e.g., processors,micro-controllers, high-speed video cards, memories, semiconductordevices, and the like, that emanate relatively significant amounts ofheat during operation. For example, a typical PC board comprisingmultiple microprocessors may use approximately 250 W of power. Thus, arack containing forty PC boards of this type may consume approximately10 kW of power and generate substantial amounts of heat.

The power required to dissipate the heat emanated by the components inthe racks is generally equal to about 10 percent of the power needed tooperate the components. However, the power required to dissipate theheat emanated by a plurality of racks in a data center is equal to about50 percent of the power needed to operate the components in the racks.The disparity in the amount of power required to dissipate the variousheat loads between racks and data centers stems from, for example, theadditional thermodynamic work needed in the data center to cool the air.In one respect, racks are typically cooled with fans that operate tomove cooling fluid—e.g., air—across the heat emanating components;whereas, data centers often implement reverse power cycles to coolheated return air. In addition, various cooling mechanisms havedifferent cooling efficiencies. For example, water-cooling units operatemore efficiently than air-cooling units, but are costlier to install.The additional work required to achieve the temperature reduction, inaddition to the work associated with moving the cooling fluid in thedata center and the condenser, often add up to the 50 percent powerconsumed by the data center. As such, a workload manager that accountsfor these energy costs may lower the operating costs of a data centerwithout sacrificing performance.

SUMMARY

Embodiments of the invention provide a method, system and computerprogram product for creating and selecting a cost-saving method forscheduling tasks submitted to a data center. The method, system andcomputer program product include receiving a task to be performed bycomputing resources within the data center. Also, the method, system andcomputer program product include determining a cost-saving method forscheduling the task based on a job completion constraint and a datacenter operating cost constraint, wherein the job completion constraintdefines one of (i) an operating parameter of the data center whenexecuting the task and (ii) a penalty associated with executing thetask. Finally, the method, system and computer program product includescheduling the task using the cost-saving method.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited aspects are attained andcan be understood in detail, a more particular description ofembodiments of the invention, briefly summarized above, may be had byreference to the appended drawings.

It is to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

FIG. 1A-1B are block diagrams illustrating a networked system forscheduling tasks in a data center, according to embodiments of theinvention.

FIG. 2 is a flow diagram illustrating methods of scheduling tasks withina data center, according to embodiments of the invention.

FIG. 3 is a flow diagram illustrating methods of scheduling tasks withina data center, according to embodiments of the invention.

FIG. 4 is a graph illustrating a variable energy rate, according toembodiments of the invention.

FIG. 5 is a block diagram illustrating a cloud computing system forscheduling tasks in a data center, according to embodiments of theinvention.

DETAILED DESCRIPTION

Many data centers use workload managers to execute tasks on computingresources located within the data center. The scheduling criteria usedby the workload manager, however, is typically limited to performancestandards—i.e., the time and computing resources needed to complete ajob. Under this scheme, the workload manager assigns the task in themost time efficient manner even if the results are not neededimmediately. This myopic approach fails to consider the operating costsincurred when completing jobs. In many situations, operating costs maybe reduced while performance standards are still met. A workload managerthat schedules task by balancing cost with performance may decrease theenvironmental impact of data centers and increase profitability.

In one embodiment of the invention, a workload manager considers bothperformance standards and operating costs when scheduling jobs in a datacenter. In general, the workload manager receives a task (or job) to beperformed by computing resources found within the data center anddetermines how much time is required to complete the task. The workloadmanager may then compare the required time to a job completionconstraint. This requirement establishes the operating parameters of thedata center when performing the task—i.e., how much time is allotted fora particular task to run, memory that may be used, or amount ofcomputing resources allotted. If a given task can be executed within theallotted time, then the workload manager schedules the job in a mannerto reduce operating costs so long as the task still executes within theallotted time. As such, the workload manager balances the performancestandards (e.g., the job completion constraint) with the operating costsof the data center.

In another embodiment, the workload manager receives a task to completebut determines that scheduling the task in a manner to lower operatingcosts violates the job completion constraints—e.g., the data center isperforming at near maximum capacity. Nonetheless, the workload managermay still schedule the job to reduce operating costs. For example, aviolation of the job completion constraints (i.e., failing to complete ajob within a specified time) might contractually require the owner ofthe data center to pay a penalty. But the savings from lowering theoperating costs might be greater than the penalty. Thus, the workloadmanager may select the more profitable choice and schedule the task in amanner to lower the operating cost.

In the following, reference is made to embodiments of the invention.However, it should be understood that the invention is not limited tospecific described embodiments. Instead, any combination of thefollowing features and elements, whether related to differentembodiments or not, is contemplated to implement and practice theinvention. Furthermore, although embodiments of the invention mayachieve advantages over other possible solutions and/or over the priorart, whether or not a particular advantage is achieved by a givenembodiment is not limiting of the invention. Thus, the followingaspects, features, embodiments and advantages are merely illustrativeand are not considered elements or limitations of the appended claimsexcept where explicitly recited in a claim(s). Likewise, reference to“the invention” shall not be construed as a generalization of anyinventive subject matter disclosed herein and shall not be considered tobe an element or limitation of the appended claims except whereexplicitly recited in a claim(s).

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Embodiments of the invention may be provided to end users through acloud computing infrastructure. Cloud computing generally refers to theprovision of scalable computing resources as a service over a network.More formally, cloud computing may be defined as a computing capabilitythat provides an abstraction between the computing resource and itsunderlying technical architecture (e.g., servers, storage, networks),enabling convenient, on-demand network access to a shared pool ofconfigurable computing resources that can be rapidly provisioned andreleased with minimal management effort or service provider interaction.Thus, cloud computing allows a user to access virtual computingresources (e.g., storage, data, applications, and even completevirtualized computing systems) in “the cloud,” without regard for theunderlying physical systems (or locations of those systems) used toprovide the computing resources.

Typically, cloud computing resources are provided to a user on apay-per-use basis, where users are charged only for the computingresources actually used (e.g. an amount of storage space consumed by auser or a number of virtualized systems instantiated by the user). Auser can access any of the resources that reside in the cloud at anytime, and from anywhere across the Internet. In context of the presentinvention, a user may access applications (e.g., workload managers) orrelated data available in the cloud. For example, the workload managercould execute on a computing system in the cloud and schedule task fordata centers also located within the cloud. In such a case, the workloadmanager could receive task to be completed by computing resources in adata center and store the results at a data center in the cloud. Doingso allows a user to access this information from any computing systemattached to a network connected to the cloud (e.g., the Internet).

FIG. 1A-1B are block diagrams illustrating a networked system forscheduling tasks in a data center, according to embodiments of theinvention. As shown, FIG. 1A is a block diagram illustrating a networkedsystem for scheduling tasks received from a client system, according toembodiments of the invention. In the depicted embodiment, the system 100includes a client system 120 and a data center 170 connected by anetwork 150. Generally, the client system 120 may submit requests (i.e.,tasks) over the network 150 to a workload manager running on the datacenter 170. The term “task” denominates a set of commands forinstructing the computing resources found within the data center tostore, process, or access data. Tasks may take the form of a commandlanguage, such as the Structured Query Language (SQL), that letsprogrammers and programs select, insert, update, find out the locationof data, and so forth. Generally speaking, any requesting entity canissue tasks to be performed by computing resources in a data center 170.For example, software applications (such as by an application running onthe client system 120), operating systems, and, at the highest level,users may submit tasks to the data center 170. These tasks may bepredefined (i.e., hard coded as part of an application) or may begenerated in response to input (e.g., user input). Upon receiving thetask, the workload manager on the data center 170 assigns the task tospecific computing resources according to certain criteria and thenreturns the result of the executed task if required.

The requesting entity is generally oblivious to method used by the datacenter 170 to perform the task. Once a task is submitted to a datacenter 170, the workload manager is usually free to assign the task toany computing resources it desires. For example, the task may becompleted by one or more different computing processors or divided upinto multiple sub-tasks. However, the requesting entity may be concernedwith the amount of time taken to execute a task. As an example, the userof a client system 120 may require that the data center 170 complete thetasks submitted by the user within five seconds. In such a case, theclient system 120 establishes a job completion constraint that governshow the workload manager schedules tasks. A “job completion constraint”is any requirement (e.g., a time or redundancy requirement) thatestablishes operating parameters for the workload manager whenscheduling tasks. These requirements may be defined by contract, such asa service level agreement (SLA), or set by an administrator based on ITresource constraints. As an example, certain computing resources may bereserved for only certain tasks. The workload manager evaluates any jobcompletion constraints and schedules a received task accordingly.

FIG. 1B is a block diagram of a networked computer system for schedulingtasks received from a client system, according to embodiments of theinvention. As shown, the system 110 contains a client system 120 and adata center 170. The client system 120 contains a computer processor122, storage media 124, memory 128 and a network interface 138. Computerprocessor 122 may be any processor capable of performing the functionsdescribed herein. The client system 120 connects to the network 150using the network interface 138. Furthermore, as will be understood byone of ordinary skill in the art, any computer system capable ofperforming the functions described herein may be used.

In the pictured embodiment, memory 128 contains an operating system 130and a client application 132. Although memory 128 is shown as a singleentity, memory 128 may include one or more memory devices having blocksof memory associated with physical addresses, such as random accessmemory (RAM), read only memory (ROM), flash memory or other types ofvolatile and/or non-volatile memory. The client application 132 isgenerally capable of generating tasks to be executed by a data center170. Once the client application 132 generates a task, the job may besubmitted to a server (e.g., server 184) for execution. The operatingsystem 130 may be any operating system capable of performing thefunctions described herein.

The data center 170 contains a workload manager 172, energy profilesystem 178, and servers 184. The workload manager 172 contains memory174 which stores the job completion constraints 176, the job estimationcomponent 177, and the operating costs component 171. The job completionconstraints 176 store the operating parameters for completing a receivedtask—e.g., a time constraint, memory that may be used, or amount ofcomputing resources allotted. The job estimation component 177 evaluateseach incoming task to determine the time needed to perform a task basedon available computing resources (e.g., servers, virtual machines, ordatabases). The operating costs component 171 gathers informationconcerning variables that may influence operating costs—e.g., energyconsumed, outside temperature, variable energy costs, or systemworkload—and determines various ways to schedule tasks to lower thesecosts. These different variables will be discussed in greater detailbelow.

The energy profile system 178 includes temperature sensors 180 and powermeters 182. Multiple temperature sensors 180 may be placed around thedata center 170. Each temperature sensor 180 can either send informationdirectly to the operating cost component 171 or the aggregateinformation is used to create a temperature density. Although FIG. 1Bdepicts the temperature sensors 180 as being inside the data center 170,temperatures sensors 180 may be located outside the building or inadjacent rooms to measure the ambient temperature. Power meters 182 areused to record the power consumed by different components. For example,each computer room air conditioning (CRAC), coolant distribution unit(CDU), or computer hardware component (e.g., a server) may have anindividual power meter 182. Like the temperature sensors 180, the powermeters 182 send the information concerning energy consumption to theoperating costs component 171.

In one embodiment, the servers 184 are the computing resources of thedata center 170; however, the computing resources may be structured in avariety of ways, such as virtual machines, abstract databases,distributed computing environments, and the like. The servers 184contain a computer processor 186, storage media 188, memory 190 and anoperating system 192. Computer processor 186 may be any processorcapable of performing the functions described herein. Although memory178 is shown as a single entity, memory 178 may include one or morememory devices having blocks of memory associated with physicaladdresses, such as random access memory (RAM), read only memory (ROM),flash memory or other types of volatile and/or non-volatile memory. Theoperating system 180 may be any operating system capable of performingthe functions described herein. Furthermore, as will be understood byone of ordinary skill in the art, any computer system capable ofperforming the functions described herein may be used.

Generally, the client application 132 generates and submits tasks to theworkload manager 172 using the network 150. A workload manager 172 maybe created using job specification design language (JSDL), such asIBM®'s Tivoli® Dynamic Workload Broker, to control the job scheduling ina data center 170 using a virtualized environment. According toembodiments of the invention, once the workload manager 172 receives atask, the job estimation component 177 calculates an estimated timerequired to perform for the task. Such a calculation may be based onvalues in the received task. For example, if the task is to query adatabase, the job estimation component 177 may determine that a SELECTstatement from a particular table in the database requires one second tocomplete. Additionally, the calculation may be based on historical data(not shown) derived from executing similar tasks. For example, thehistorical data may contain data indicating that the workload manager172 has previously scheduled a similar (or identical) job to thereceived job. In such a case, the job estimation component 177 maycalculate the estimated time for execution of the received task based onthe time needed for the previously processed task. Furthermore, the jobestimation component 177 may estimate the required time based on thesystem conditions. If the server 184 is already processing receivedtasks, then a new task may take longer than if the servers 184 wereidle. Of course, the above examples are merely for illustrativepurposes, and one of ordinary skill in the art will recognize that otherdata may be used to estimate the time needed to complete a task.

FIG. 2 is a flowchart that illustrates a process of managing theworkload for a data center, according to one embodiment. At step 210,the workload manager 172 receives a task from the client system 120.This task may originate from a user, an application, another datacenter, or from a sub-system within the data center 170. At step 215,the workload manager 172 determines the amount of data center resourcesneeded to accomplish the task. In one embodiment, the data center 170 isa normalized virtual IT execution container (e.g., a unit virtualmachine (VM) with a CPU, memory, and I/O capacities) with certain ITconstraints. The workload manager 172 identifies the number of datacenter units (e.g., virtual machines) used to complete the task and theamount of time taken. This yields a rate at which a particular task isexecuted—i.e., the number of virtual machines needed per hour (VM/hr).At step 220, the job estimation component 177 uses this historical rateto estimate a time of execution for a similar, received task. Forexample, if five virtual machines are available, and the estimatedhistorical rate for the task is 25 VM/hr, then the estimated executiontime for that task is five hours. In general, the job estimationcomponent 177 may estimate the time of completion based on generalinformation about a task, the current system workload, or historicaldata. This embodiment is independent of any particular method ofestimating the completion of a task or process. Thus, one of ordinaryskill in the art will recognize that any method of estimating the timeto complete a task that meets the requirements described herein may beused.

At step 225, the estimated time is compared to the job completionconstraints 176. In general, the workload manager 172 ensures that thetask can be completed within the operating parameters contained in thejob completion constraints 176. In one embodiment, the job completionconstraints 176 are defined by a contractual agreement such as a servicelevel agreement (SLA). A SLA is a part of a service contract where thelevel of service is formally defined. In practice, the term SLA mayrefer to the contracted delivery time (of the service) or performance.As an example, the user of a client system 120 enters into a SLA withthe owner of a data center 170. Within the terms of the contract, itdefines the level(s) of service demanded, e.g., various data rates,serviceability, performance, operation, or other attributes of theservice. Specifically, the SLA may state that for a given type of task,the data center must return a result within five seconds. For largertasks, such as computing the monthly payroll, the SLA may require theresults be returned the next business day. Typically, the user pays thedata center a fee in return for the use of the data center 170.Accordingly, the SLA may establish penalties if the data center does notmeet the contractual obligations. As an example, if the payroll isdelivered late, then the owner of the data center pays a $1000 penalty.The terms of the SLA may be stored in the job completion constraints 176and compared to the estimated time of executing a task.

In another embodiment, an administrator sets the job completionconstraints 176 by specifying a list of tasks and a maximum amount oftime allotted to execute each task. For example, a task that storespersonal employee information should be completed within seconds, but atask that processes models associated with a weather pattern may beallotted several hours. The administrator may also limit the memoryused, number of virtual machines allotted, and other similar IT resourceconstraints to establish the operating parameters. These constraints maybe dealt with in a similar manner as time constraints to reduceoperating costs. Moreover, the job completion constraints 176 may groupmultiple tasks together by assigning a single time constraint—e.g., thepayroll for every department must be finished within twenty-four hours.Furthermore, the administrator may prioritize tasks such that greatertime constraints are placed on more important tasks. In general, theshorter time allotted for a task, the more computing resources needed toaccomplish that task (i.e., requiring the use of multiple virtualmachines, parallel processing, or distributed computing). One ofordinary skill in the art will recognize the various ways of schedulinga task using different types and implementations of computing resources.

In one embodiment, the job completion constraints 176 may include aredundancy or back-up plan established by an administrator or a SLA.Such a plan may require that a portion of the stored data in a datacenter 170 be backed up at regular intervals. This task, however, istypically set without consideration of incurred operating costs. Thismay lead to waste since delaying a system back-up to a time whenoperating costs are lower may increase the profitability of the datacenter 170. Similarly, there may be an associated penalty for failing tofollow redundancy protocol stored in the job completion constraints 176.Under a SLA, the penalty may be a set rate, but it may also be the costof recovering the data if a system crash occurs—i.e., proportional tothe amount of data lost.

At step 230, the workload manager 172 determines the operating costs ofthe data center 170. The operating costs component 171 may keep track ofthe operating costs continuously or update the costs when the workloadmanager 172 receives a new task. The operating costs component 171receives information from the energy profile system 178 via thetemperature sensors 180 and power meters 182. This information may beextrapolated to build an operating cost profile for the data centerwhich is then used to determine different methods of lowering operatingcosts. Moreover, the operating costs component 171 may use the rate ofexecution of a task (i.e., virtual machines per hour) to determineenergy consumed while performing the task. As an example, each unit rate(i.e., 1 VM/hr) may require 5 kW of power during a certain period of theday; thus, a task with an estimated rate of 25 VM/hr will use 125 kW ofpower. The operating costs component 171 can use this information todetermine which tasks will consume the most energy, and thus, should bescheduled using more aggressive cost saving methods. Before discussingtechniques of lower operating costs, however, the different variablesthat may affect such costs must be introduced.

FIG. 4 is a graph which illustrates an exemplary power pricingstructure, according to one embodiment of the invention. In the depictedexample, the graph 400 represents a power pricing schedule for a typicalpower plant. As shown, the graph 400 includes three pricing levels 420₁₋₃. Each pricing level 420 corresponds to a price 422 per unit of powerand a time range. The time range may be specified by two time values424. For example, the time range may include a start time value 424 andan end time value 424. As an example, pricing level 420 ₁ corresponds toa price 422 ₂ of $5.00 per unit of power, and a time range beginning atstart time midnight 424 ₁ and end time 9:00 am 424 ₂. As a secondexample, pricing level 420 ₂ corresponds to a price 422 ₁ of $10.00 perunit of power, and a time range beginning at start time 9:00 am 424 ₂and end time 4:00 pm 424 ₃. FIG. 4 shows an exemplary power priceschedule where the price for power varies depending on the time of day.Typically, demand for power is less during the nighttime than during thedaytime. FIG. 4 also illustrates the fact that when demand is typicallythe lowest—from 4:00 pm 424 ₃ to 9:00 am 424 ₂—so is the price. Asshown, a power company charges a premium for power usage during peakhours, but charges a reduced rate for power usage during off-peak hours.Thus, the time of day that a task is executed affects operating costs.

Ambient temperature may also affect operating costs. In one embodiment,the operating cost component 171 receives measurements from atemperature sensor 180 located outdoors—perhaps near a vent thatprovides air to a CRAC. If the ambient temperature is high, then theCRAC must consume more energy to cool the air than if the ambienttemperature was low. In general, certain periods of the night offercooler temperatures than during the day. Thus, at night a CRAC may useless energy to cool outside air before circulating that air in the datacenter 170. Additionally, if a temperature sensor 180 detects an outsidetemperature at or below the desired temperature setting of the CRAC,then using the outside air costs only the energy needed to circulate it.Additionally, temperature sensors 180 may be placed in rooms adjacent tothe data center 170. The energy profile system 178 reports thesetemperatures to the operating costs component 171 to account for heatthat may be radiating from shared walls.

Hardware components (e.g., servers 184) affect both the temperature andthe energy consumed in a data center 170. One of the cooling system'stasks is to cool the hardware components. Accordingly, the data center170 must consume energy to power the servers 184 and to simultaneouslycool them using a CRAC or CDU. A rack, which includes multiple servers184, may contain forty PC boards and consume approximately 10 KW ofpower. Typically, the cooling units must consume 50 percent of theenergy needed to operate the PC boards to cool the components on therack, thus, a cooling unit would consume 5 KW to cool each rack. A datacenter 170 would then expend 15 KW of power per rack. Moreover, powerconsumed by hardware fluctuates based on the amount of processingoccurring on the hardware. Accordingly, the heat radiated from hardwarealso increases as workload increases, thereby requiring the coolingunits to consume additional energy to cool the components.

In one embodiment, the operating costs component 171 may record how muchenergy is consumed in units of VM/hr for a certain time of the day—e.g.5 kW at 12:00 pm but only 3 kW at 12:00 am because of cooler outsideair. This generalization combines all of the aforementioned factorsaffecting the operating costs of a data center 170 into a single numberthat corresponds to the time a workload manager 172 receives andschedules a task. For example, if a task is received at 12:00 pm andexecutes at a rate of 10 VM/hr, then the energy consumed will be 50 kWif the task is executed immediately but only 30 kW if the same task isexecuted at 12:00 am. Thus, the operating costs component 171 canquickly determine the cost of executing a task.

Now that variables affecting the operating costs of cooling units havebeen introduced, techniques or methods for lowering these costs may bediscussed. Much like a job completion constraint, the various techniquesfor lowering operating costs may be considered as constraints by theworkload manager 172.

In one embodiment, the workload manager 172 uses a scheduler to postponeor delay jobs. For example, at step 225, the job estimation component177 determines whether the time needed to execute the job is less thanthe allotted time recorded in the job completion constraints 176. If so,the workload manager 172 may delay the job to a time when energy costsare cheaper. For example, the data center 170 may be powered by a windfarm, which generally produces more power at night when the most windoccurs. Accordingly, the data center 170 has access to cheaper power atnight. Referring again to FIG. 4, this graph illustrates such a variableenergy-pricing structure. If a workload manager 172 receives a job at3:50 pm, if possible, the task should be scheduled to run after 4:00 pm424 ₃ when power is available at a cheaper rate. The operating costscomponent 171 may store any information pertaining to variable energycosts.

In another embodiment, the data center 170 uses cogeneration power.Cogeneration uses waste heat produced from generating electricity toeither heat nearby buildings or run absorption chillers for cooling. Anabsorption chiller uses waste heat instead of mechanical cooling tooperate the chiller. Accordingly, a data center 170 may have access toabsorption chillers that can replace or assist the CRACs or CDUs to coolthe servers 184. Because these chillers operate off heat produced fromgenerating electricity, their peak cooling may be correlated with thepeak hours of electricity use. The workload manager 172 may use thiscorrelation as a constraint when scheduling a task. Therefore, a datacenter 170 that uses absorption chillers may schedule tasks to run atpeak hours of energy usage to benefit from the cheap cooling provided bythe absorption chillers.

In another embodiment, the workload manager 172 may schedule a task torun during nighttime to advantageously use the cooler air. For example,a CRAC may pull air from the outside rather than continually recyclingair from within the data center 170. In either case, the CRAC may haveto cool the air before distributing it throughout the data center 170.However, the outside nighttime air may be cooler than the recirculatedair, and therefore, require less cooling (or perhaps no cooling at all).Scheduling a task to run when the outside air temperature is cooler thanthe recirculated air may allow the CRAC to consume less energy.

Recording the temperature found in adjacent rooms provides the workloadmanager 172 with another constraint to consider when reducing operatingcosts. For example, assume that an adjacent room contains manufacturingequipment which emits heat only during normal business hours. Some ofthis heat may radiate through shared walls with the data center 170which forces the cooling units to consume more energy. The operatingcost component 171 may record this temperature and inform the workloadmanager 172 to schedule tasks when the manufacturing equipment is nolonger running. This prevents the cooling units from having to counterthe heat emanating from the hardware components as well as the ambientheat radiating through the walls.

In one embodiment, instead of postponing the tasks, the workload manager172 may power down certain servers 184 or migrate work between hardwarecomponents. Concerning the former, the workload manager 172 may disablecertain servers 184 as an alternative to scheduling a task to run later.Because some servers 184 are powered off or are unavailable, tasks maybegin to form a queue waiting for the limited computing resources tofinish executing preceding tasks. The job estimation component 177determines how much a task is delayed by powering down differentpercentages of the computing resources. In this manner, the workloadmanager 172 may force the task into a queue to be performed when energyprices are reduced or when a CRAC can advantageously use cooler outsideair. Concerning the latter, the workload manager 172 may also migrateworkloads to different servers 184. For example, a certain task may takeall night if the workload manager 172 schedules the job to run on onlyone server. Nonetheless, the server 184 may be cooled by a CDU which ismuch more efficient than a CRAC. Though the task requires more time toexecute, the cost of cooling the hardware component that performs thetask (i.e., the operating cost) is greatly reduced. In one embodiment,the operating costs component 171 may store the information that detailsthe types of cooling units that cool each server in the operating costscomponent 171.

Regarding redundancy or back-up plans, the workload manager 170 mayconsider possible power outages as operating costs constraints. Forexample, during a power outage (or blackout) the data center 170 isunable to operate. Similarly, the power meters 182 may detect a brownout(i.e., a voltage sag) which can trigger the workload manager 172 toreschedule tasks to alleviate stress on the power system and avoid ablackout (i.e., a total loss of power). This would lower the operatingcosts since the data center 170 would still be able to operate albeitunder certain limitations. In another example, the workload manager 172may consider rolling blackouts when scheduling a task. The workloadmanager 172 may aggressively schedule jobs before the blackout knowingthat the added heat will dissipate during the blackout. Also, theworkload manager 172 may prioritize tasks so that more important tasksare completed before the blackout (and avoid any associated penalties).

The workload manager 172 and operating costs component 171 may use allthe aforementioned embodiments (or combinations thereof) to loweroperating costs of the data center 170. However, one of ordinary skillin the art will recognize that any method of lowering operating coststhrough the use of a workload manager 172 as described herein may beused.

Returning to FIG. 2, at step 235 the workload manager 172 evaluates eachpossible technique of lowering operating costs developed by theoperating costs component 171 to determine which may violate the jobcompletion constraints 176. For example, the computing resources may beable to complete the job in five seconds and the job completionconstraints 176 may allot ten seconds to the job. However, one method oflowering the operating costs (e.g., performing the task only on a servercooled by a CDU) may cause the execution time to increase to fifteenseconds. Thus, in this embodiment the workload manager 172 would notchoose that method. Nonetheless, the operating costs component 171 mayprovide an alternative method, such as scheduling half of the task to becompleted by the server 184 cooled by the CDU, which may keep theexecution time within the time constraint described in the jobcompletion constraints 177. Or the proposed method may be a combinationof two different types of techniques that lower operating costs (e.g.,migrating a task to a certain server 184 and postponing the job untilvariable energy prices fall). However, if the operating costs component171 cannot provide a method or variation thereof that reduces operatingcosts and still satisfies the job completion constraint 176, then atstep 240 the workload manager 172 assigns the task based upon theperformance standards found within the job completion constraints 176.For example, in this embodiment, if the job completion constraint 176requires the data center 170 to complete the task under two seconds andall of the proposed techniques of reducing operating costs (orcombinations thereof) would complete the task in over two seconds, thenthe task is scheduled based only on the job completion constraints 176.Accordingly, the different techniques of reducing the operating costsalso introduce a constraint that may be considered by the workloadmanager 172.

The operating costs component 171 may also use the rate of execution(VM/hr) to prioritize the suggested methods of lowering operating costs.As an example, the rate for a first received task is 20 VM/hr but therate for a second task is only 10 VM/hr. In general, the higher therate, the more energy required to complete the task. The morecost-effective approach may be to aggressively lower the cost ofperforming the first task (e.g., postpone it for several hours untilenergy costs are less expensive). The operating costs component 171 thensubmits the proposed method. Before the method is implemented, however,the workload manager 172 ensures that any method of reducing cost stillpermits the task to be completed with the operation parametersestablished in the job completion constraints 176.

At step 245, the workload manager 172 has determined that a possiblemethod provided by the operating costs component 171 lowers operatingcosts while simultaneously meeting established performance standards.Thus, the workload manager 172 uses the chosen cost-saving method (orcombination of methods) when optimizing a workload plan for executingthe task. At step 250, the workload manager 172 implements the workloadplan to execute the task. One of ordinary skill in the art willrecognize that any process that creates and implements a workload planas discussed herein may be used.

In one embodiment, the workload manager 172 may reevaluate previouslyscheduled tasks. For example, the workload manager 172 may havescheduled a task to run several hours later during the nighttime.However, a cold front may have recently caused the ambient temperatureto fall. A temperature sensor 180 within the energy profile system 178may record this decrease in ambient temperature and alert the workloadmanager 172. Accordingly, a CRAC that pulls air from the outside nowneeds less energy to cool the air before distributing it throughout thedata center 170. Running the postponed task following the cold front maylower operating costs more so than running the task at night. Thus, theworkload manager 172 may dynamically adjust a workload plan alreadyestablished for a particular task.

FIG. 3 is a flowchart that illustrates a process of managing theworkload for a data center, according to one embodiment. At step 310,the workload manager 172 receives a task for a client system 120. Atstep 320, the operating costs component 171 estimates the cost savingsfor every technique that lowers the operating costs (e.g., postponing,transferring, or migrating the task). For example, if immediatelyexecuting the task consumes $200 worth of power but costs only $150 ifexecuted after 9:00 pm because of variable energy costs, then the costsavings for that technique is $50. The operating costs component 171 maydo a similar calculation for all the different techniques andcombinations thereof.

In this embodiment, the job completion constraints 176 may beestablished by a contractual agreement—e.g., a SLA—which includespenalties for violating the terms. These penalties may be fixed perviolation or, if the penalty is based on time, increase according to thelength of the delay. At step 330, the workload manager 172 compares thecost savings of each technique proposed by the operating costs component171 to the penalties incurred under the contractual agreement. Thiscomparison determines the profitability of a workload plan that uses thecost-saving technique. Unlike in FIG. 2, this embodiment does notexplicitly consider whether a particular technique will violate the jobcompletion constraints 176. Instead, at step 340, the workload manager172 determines whether each cost-savings technique is profitable. Atechnique that violates the operating parameters may (or may not) be themost profitable. For example, a SLA may require a response time for twoseconds to complete a task and establish a $1000 penalty for each monththis requirement is violated. The operating costs component 171,however, may inform the workload manager 172 that increasing theresponse time to four seconds will save 30% of the 1500 kW used monthlyand yield a savings of $2250 (at a rate of $5 per kW) and a profit of$1250. At step 360, the workload manager 171 performs this profitabilitycalculation for each technique to discover the one that yields the mostprofit. Continuing the previous example, assume that another cost-savingtechnique saves only 20% of the 1500 kW used monthly but does not incura penalty (e.g., the tasks are forced to run on a idle server cooled bya CDU). In such a case, both the savings and profit is $1500. Thus, theworkload manager 172 would choose this technique because it maximizesprofit even though the technique does not offer the greatest savings.

So long as one cost-saving technique generates a profit, at steps 360and 370, the workload manager determines the most profitable techniqueand creates a workload plan that implements the technique. Otherwise, atstep 360, the workload manager 172 formulates a workload plan thatignores the operating costs of the data center 170.

In another embodiment, the workload manager 172 may determine that areceived task cannot be completed within the time allotted in the jobcompletion constraints 176 irrespective of scheduling the job in amanner to reduce operating costs. Nonetheless, the workload manager maystill schedule the job to reduce operating costs. For example, if acontractual agreement establishes a flat fee for violating the jobcompletion constraints 176, then the cost-saving technique that providesthe most savings also yields the most profit since the job completionconstraints will be violated regardless of the technique used.Conversely, if the contractual agreement establishes a penalty thatincreases as the delay in completing the task increases, then theworkload manager 172 may continue to consider the performance standardswhen evaluating any potential cost-saving techniques.

FIG. 5 is a diagram illustrating an exemplary cloud computing systemusing a workload manager, according to one embodiment. The system 500includes a client system 120, network 150, and a cloud computing system505. The client system 120 and network 150 were discussed above in thediscussion accompanying FIG. 1. The cloud computing system includes twodata centers 170 ₁₋₂ with corresponding workload managers 172 ₁₋₂ andcomputing resources (i.e., servers 184 ₁₋₂). The data centers 170receive tasks via a cloud workload manager 510.

The cloud computing system 505 provides resources, software, andinformation to the client system on demand. In one embodiment, thenetwork 150 is the internet which enables the client system to accessthe resources located in the cloud. The cloud workload manager 510receives a task from the client system 120. As such, the cloud workloadmanager has two separate data centers capable of performing the task—theNew York data center 170 ₁ and the California Data Center 170 ₂. Thecloud workload manager 510 operates similarly to the workload managers172 ₁₋₂ located on the individual data centers 170 ₁₋₂. In oneembodiment the cloud workload manager 510 determines which data center170 provides the most profitable cost-saving technique to complete thetask within the operation parameters as described in the discussionaccompanying FIG. 3. As an example, assume that the client system 120 islocated in California and submits a task to the cloud workload managerat 6:00 pm PST (Pacific Standard Time). In a cloud computingenvironment, the client system 120 is typically ignorant of how or wherethe task is performed. Accordingly, the cloud workload manager 510 maychoose either data center 170 ₁₋₂ to assign the task. In one embodiment,the cloud workload manager 510 decides which data center 170 to assignthe task based on energy prices. Continuing the example, when the taskis submitted at 6:00 pm PST, it is 9:00 pm EST (Eastern Standard Time)at the New York Data Center 170 ₁ which may qualify the data center 170₁ for cheaper energy rates. Although the California data center 170 ₂ isgeographically closer, the New York data center 170 ₁ may offer agreater profit.

In another embodiment, the workload managers 172 ₁₋₂ on each data centermay transfer the task to a different data center 170. In such a case,the cloud workload manager 510 may not consider profitability whenassigning jobs. Instead, the cloud workload manager 510 may rely on, forexample, geographic proximity to a client system 120. Assuming theclient system 120 is closest to the California data center 170 ₂, thecloud workload manager 510 assigns received tasks to that data center.However, the workload manager 172 ₂, when determining profitability, mayconsider the variable energy rates associated with the New York datacenter 170 ₁ and transfer the task to that data center instead ofcompleting it. In other words, a centralized cloud workload manager 510does not need to determine profitability but can delegate that role tothe individual workload managers 172 ₁₋₂ found in various data centers170 ₁₋₂.

A cloud computing environment may be used in other ways to maximizeprofitability. Instead of variable energy rates based on the time ofday, different sources of power may be considered. As an example, a datacenter 170 may receive power from a hydroelectric generator, a windfarm, or from solar panels. When combined with multiple data centers 170linked together in a cloud computing system 505, these data centers 170₁₋₂ may transfer received tasks according to the different sources ofpower. For example, assume that the California data center 170 ₂ ispowered by solar panels which offer cheap energy during sunny days.Accordingly, the New York data center 170 ₁ might transfer as many tasksas possible to the California data center when the sun is shining atthat location. Of course, sending too much work to the California datacenter 170 ₂ might be less profitable than executing the task at the NewYork data center 170 ₁ (e.g., the tasks cannot be performed withoutpaying a penalty which offsets the savings). In such a case, theworkload manager 172 ₂ may transfer the task back to the New York datacenter 170 ₁. One of ordinary skill in the art will recognize thatmultiple data centers may be connected in many different methods to takeadvantage of variable energy rates, sources of cheap power, weather, andthe like to increase profitability when scheduling tasks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

1. A method of managing tasks in a data center, comprising: receiving atask to be performed by computing resources within the data center;determining, by operation of one or more computer processors, acost-saving method for scheduling the task based on a job completionconstraint and a data center operating cost constraint, wherein the jobcompletion constraint defines one of (i) an operating parameter of thedata center when executing the task and (ii) a penalty associated withexecuting the task; and scheduling the task using the cost-savingmethod.
 2. The method of claim 1, wherein determining a cost-savingmethod further comprises: determining at least two cost-saving methodsfor scheduling a task, wherein the cost-saving method generates savingsby reducing the operating expenses of the data center; indentifying anypenalty incurred by the cost-saving methods; upon determining that theplurality of cost-saving methods do not incur a penalty, determining aprofit of each cost-saving method based on the savings from eachcost-saving method; upon determining that at least one of thecost-saving methods does incur a penalty, determining the profit of thecost-saving methods based on the savings and any incurred penaltyassociated with the cost-saving methods; determining the most profitablecost-saving method based on the profit of each cost-saving method; andscheduling the task according to the most profitable cost-saving method.3. The method of claim 1, wherein determining a cost-saving methodfurther comprises: estimating a required amount of time needed tocomplete the task; comparing the time needed to complete the task to thejob completion constraint; upon determining that the required timesatisfies the job completion constraint, determining whether anestimated time needed to complete the task using a cost-saving methodsatisfies the job completion constraint; and upon determining that theestimated time needed for the cost-saving method satisfies the jobcompletion constraint, scheduling the task using the cost-saving method.4. The method of claim 1, wherein the job completion constraint is setby at least one of: a contractual agreement and preferences of anadministrator.
 5. The method of claim 1, wherein the data center isconnected to a plurality of data centers within a cloud computingnetwork.
 6. The method of claim 5, further comprising transmitting thetask to a different data center within the cloud computing network. 7.The method of claim 1, wherein the job completion constraint definesboth (i) an operating parameter of the data center when executing thetask and (ii) a penalty associated with executing the task.
 8. Acomputer program product for managing data in memory, the computerprogram product comprising: a computer-readable storage medium havingcomputer-readable program code embodied therewith, the computer-readableprogram code comprising: computer-readable program code configured to:receive a task to be performed by computing resources within the datacenter; determine a cost-saving method for scheduling the task based ona job completion constraint and a data center operating cost constraint,wherein the job completion constraint defines one of (i) an operatingparameter of the data center when executing the task and (ii) a penaltyassociated with executing the task; and schedule the task using thecost-saving method.
 9. The computer-readable storage medium of claim 8,further comprising: determining at least two cost-saving methods forscheduling a task, wherein the cost-saving method generates savings byreducing the operating expenses of the data center; indentifying anypenalty incurred by the cost-saving methods; upon determining that theplurality of cost-saving methods do not incur a penalty, determining aprofit of each cost-saving method based on the savings from eachcost-saving method; upon determining that at least one of thecost-saving methods does incur a penalty, determining the profit of thecost-saving methods based on the savings and any incurred penaltyassociated with the cost-saving methods; determining the most profitablecost-saving method based on the profit of each cost-saving method; andscheduling the task according to the most profitable cost-saving method.10. The computer-readable storage medium of claim 8, further comprising:estimating a required amount of time needed to complete the task;comparing the time needed to complete the task to the job completionconstraint; upon determining that the required time satisfies the jobcompletion constraint, determining whether an estimated time needed tocomplete the task using a cost-saving method satisfies the jobcompletion constraint; and upon determining that the estimated timeneeded for the cost-saving method satisfies the job completionconstraint, scheduling the task using the cost-saving method.
 11. Thecomputer-readable storage medium of claim 8, wherein the job completionconstraint is set by at least one of: a contractual agreement andpreferences of an administrator.
 12. The computer-readable storagemedium of claim 8, wherein the data center is connected to a pluralityof data centers within a cloud computing network.
 13. Thecomputer-readable storage medium of claim 12, further comprisingtransmitting the task to a different data center within the cloudcomputing network.
 14. The computer-readable storage medium of claim 8,wherein the job completion constraint defines both (i) an operatingparameter of the data center when executing the task and (ii) a penaltyassociated with executing the task.
 15. A system, comprising: a computerprocessor; and a memory containing a program that, when executed on thecomputer processor, performs an operation for managing the execution ofa query, comprising: receiving a task to be performed by computingresources within the data center; determining a cost-saving method forscheduling the task based on a job completion constraint and a datacenter operating cost constraint, wherein the job completion constraintdefines one of (i) an operating parameter of the data center whenexecuting the task and (ii) a penalty associated with executing thetask; and scheduling the task using the cost-saving method.
 16. Thesystem of claim 15, further comprises: determining at least twocost-saving methods for scheduling a task, wherein the cost-savingmethod generates savings by reducing the operating expenses of the datacenter; indentifying any penalty incurred by the cost-saving methods;upon determining that the plurality of cost-saving methods do not incura penalty, determining a profit of each cost-saving method based on thesavings from each cost-saving method; upon determining that at least oneof the cost-saving methods does incur a penalty, determining the profitof the cost-saving methods based on the savings and any incurred penaltyassociated with the cost-saving methods; determining the most profitablecost-saving method based on the profit of each cost-saving method; andscheduling the task according to the most profitable cost-saving method.17. The system of claim 15, further comprises: estimating a requiredamount of time needed to complete the task; comparing the time needed tocomplete the task to the job completion constraint; upon determiningthat the required time satisfies the job completion constraint,determining whether an estimated time needed to complete the task usinga cost-saving method satisfies the job completion constraint; and upondetermining that the estimated time needed for the cost-saving methodsatisfies the job completion constraint, scheduling the task using thecost-saving method.
 18. The system of claim 15, wherein the jobcompletion constraint is set by at least one of: a contractual agreementand preferences of an administrator.
 19. The system of claim 15, whereinthe data center is connected to a plurality of data centers within acloud computing network.
 20. The system of claim 19, further comprisingtransmitting the task to a different data center within the cloudcomputing network.
 21. The system of claim 15, wherein the jobcompletion constraint defines both (i) an operating parameter of thedata center when executing the task and (ii) a penalty associated withexecuting the task.